const Event = require('./05-event.js');

class Dog extends Event {
  constructor(name, energy) {
    super();
    this.name = name;
    this.energy = energy;
    this.startTimer();                    
  }

  get name() { return this.name;  }

  get energy() { return this.energy;  }

  setEnergy(e) {
    this.energy = e;
    this.startTimer();
  }
  
  name = '';
  energy = 0;
  timer = null;

  startTimer() {
    if(this.timer !== null) return;
    this.timer = setInterval(() => {
      if(this.energy > 0) {
        this.emit('bark');
        this.energy--;
      } else {
        clearInterval(this.timer);
        this.timer = null;
      }
    }, 1000);
  }
}

module.exports = Dog;
